Not Applicable
The present invention is related to the field of data communication networks and more particularly to auto-negotiation between communicatively coupled devices.
In data communications networks, devices that communicate with each other on a given network link may be configured for either half duplex or full duplex communication. In full duplex communication, two devices may transmit to each other simultaneously. In half duplex communication, only one device at a time may transmit and the devices therefore take turns transmitting to each other.
There are different ways in which the communication mode (half duplex or full duplex) on a given link is established. A device connected to a link may have a fixed capability of one or the other mode, and therefore always operates using its fixed mode. Other types of devices are xe2x80x9cconfigurablexe2x80x9d, i.e., capable of operating in either mode. A configurable device is configured to operate in a given mode on a network link based in part on the capabilities of the link and the device attached at the other end of the link. In accordance with a configuration process used on Ethernet network links and specified in IEEE standard 802.3u, devices connected to a link engage in xe2x80x9cauto-negotiationxe2x80x9d to determine, among other things, whether to use half duplex or full duplex transmission on the link. Auto negotiation proceeds during an initialization stage of link operation. The devices exchange control messages conveying capability information and subsequently exchange control messages in an attempt to agree on the transmission mode to be used. The auto negotiation process can result in the devices agreeing to employ half duplex transmission, agreeing to employ full duplex transmission or failing to agree on a transmission mode. A failure to agree can result, for example, when one device does not engage in the auto-negotiation dialog, which is permitted by the 802.3u specification. When agreement is not reached, half-duplex transmission is used by default in accordance with the 802.3u specification.
In Ethernet networks, a device obtains access to the transmission medium by listening for a period of no transmissions, beginning to transmit, and listening to its own transmission. If the transmission is received as sent, the device continues transmitting until the end of the message being sent. The device may detect that the transmission on the medium is different from what has been sent. This situation is referred to as a xe2x80x9ccollisionxe2x80x9d, because it typically results from two devices"" transmitting at the same time. If a collision is detected, the device waits a random interval and then re-transmits the same message, again listening for proper completion. Because devices must detect silence before transmitting, collisions normally occur only during a brief initial interval of transmission, which is specified as the minimum packet duration. Collisions occurring later in transmissions are usually indicative of an error condition. Also, the rate of normal (i.e. early) collisions is generally relatively low in a properly operating network link. An excessive rate of collisions, whether normal or late, is also indicative of an error condition.
It has been observed in some networks that devices on transmission links become mis-configured with respect to the transmission mode to be employed, resulting in improper operation of the link and the attached devices. In particular, it has been observed that under some circumstances a device using 802.3u auto-negotiation chooses half duplex operation despite being connected to a device that is fixed to operate in full duplex mode. The devices attached to the link have different expectations about the conditions under which transmission is permitted. Consequently, the network link operates in an erroneous manner, which may be indicated by the occurrence of late collisions and/or an excessively high rate of collisions (whether normal or late). Under some circumstances, an excessive amount of re-transmitting occurs in response to these collisions, which can lead to undesirable congestion in the network. Some devices can detect this situation and shut down the connection to the misbehaving link. However, this remedy is generally undesirable because it renders the link completely unusable. It would be desirable to respond to mis-configurations in a manner that restores link usability if possible.
In accordance with the present invention, an improved auto-negotiation procedure is disclosed that automatically attempts to identify and correct the above case of mis-configuration, in order to avoid shutting down a port and attendant operational problems. Greater network reliability and availability are achieved and the need for user intervention is reduced.
In the disclosed method, a port on a network device engages in auto-negotiation on a network link during a first operational state to select a transmission mode. If as a result of the auto-negotiation half duplex operation is selected, then the port enters a second operational state in which the port is configured for half duplex operation. During the second operational state, the link is monitored for an error condition indicating that the other network device attached to the link may not be operating in a half duplex manner. This error condition may include excessive collisions or late collisions, as discussed above.
When the error condition is detected during the second operational state, the port enters a third operational state in which the port is configured for full duplex operation. This re-configuring is based on the presumption that other device may be configured for fixed full duplex operation. If proper operation is achieved using full duplex transmission, then the port remains configured in this manner.
It is possible, however, that the presumption is incorrect and that there is a different cause for the errors occurring during half duplex operation. If so, receive transmission errors will generally occur during the third operational state as well. Therefore, during this state the link is monitored for a second error condition indicating that transmissions by the network device may be interfering with transmissions by the other network device. Examples of the second error condition include excessive frame check sequence errors and an excessive number of abnormally truncated messages. If such a second error condition occurs, the port enters a fourth operational state in which the port is at least temporarily disabled and the condition is reported to higher-level operating software in the device. One or more repeated attempts at normal operation may follow, subject to further monitoring that may ultimately result in shutting down the port if normal operation cannot be achieved.
Other aspects, features and advantages of the present invention are disclosed in the detailed description that follows.